package com.school.dao;

import java.util.Collection;
import java.util.List;

public interface BaseDao<T> {
    /**
     * 插入一条数据
     *
     * @param t ~
     * @return ~
     */
    T insert(T t);

    /**
     * 插入多条数据
     *
     * @param ts ~
     * @return ~
     */
    List<T> insert(List<T> ts);

    /***
     * 删除一条
     * @param id    ~
     * @return  ~
     */
    int delete(Integer id);

    /***
     * 删除多条
     * @param ids   ~
     * @return  ~
     */
    int[] delete(Collection<Integer> ids);

    /**
     * 修改一条数据
     *
     * @param t ~
     * @return ~
     */
    int update(T t);

    /***
     * 修改多条数据
     * @param ts  ~
     * @return  ~
     */
    int[] update(List<T> ts);

    /***
     * 查询总条数
     * @return  ~
     */
    int count();

    /***
     * 根据ID查询一条
     * @param id    ~
     * @return  ~
     */
    T findOneById(Integer id);

    /***
     * 分页查询
     * limit a,b  - a:起始下标；b:条数
     * @param t    查询对象
     * @param offset    起始下标
     * @param size  条数
     * @return  ~
     */
    List<T> findPage(T t, Integer offset, Integer size);
}
